/*
* @Author: Administrator
* @Date:   2017-09-17 20:06:14
* @Last Modified by:   Administrator
* @Last Modified time: 2017-09-18 14:27:01
*/
var Hogan = require('hogan');
var conf = {
    serverHost : ''
};
var _mm = {
    // 网络请求
    request : function(param){
        var _this = this;
        $.ajax({//http://www.runoob.com/jquery/ajax-ajax.html
            type        : param.method  || 'get',
            url         : param.url     || '',
            dataType    : param.type    || 'json',
            data        : param.data    || '',
            success     : function(res){
                // 请求成功
                if(0 === res.status){
                    typeof param.success === 'function' && param.success(res.data, res.msg);//先看success存不存在，存在调回数据和信息
                }
                // 没有登录状态，需要强制登录
                else if(10 === res.status){
                    _this.doLogin();
                }
                // 请求成功，返回数据错误，可能是参数错了
                else if(1 === res.status){
                    typeof param.error === 'function' && param.error(res.msg);
                }
            },
            error       : function(err){
                typeof param.error === 'function' && param.error(err.statusText);
            }
        });
    },
    // 获取服务器地址,输一个地址，就返回这个地址，就是path，现在没什么用
    getServerUrl : function(path){
        return conf.serverHost + path;
    },
    // 获取url参数，正则表达式见http://www.runoob.com/regexp/regexp-syntax.html
    getUrlParam : function(name){
        var reg     = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
        var result  = window.location.search.substr(1).match(reg);//问号后面的参数，（substr（1）去掉第一位）去掉问号再匹配（这里是js）
        return result ? decodeURIComponent(result[2]) : null;//判断result是不是有，有的话返回前面的，result里匹配的是正则里括号中的内容,所以是[2],1的话是空或&
    },
    // 渲染html模板
    renderHtml : function(htmlTemplate, data){
        var template    = Hogan.compile(htmlTemplate);
            result      = template.render(data);
        return result;
    },
    // 成功提示
    successTips : function(msg){
        alert(msg || '操作成功！');
    },
    // 错误提示
    errorTips : function(msg){
        alert(msg || '哪里不对了~');
    },
    // 字段的验证，支持非空、手机、邮箱的判断
    validate : function(value, type){
        var value = $.trim(value);//去掉首尾空格
        // 非空验证
        if('require' === type){//代表value有值
            return !!value;//强转成布尔型，有值返回ture，空字符串返回false
        }
        // 手机号验证
        if('phone' === type){
            return /^1\d{10}$/.test(value);
        }
        // 邮箱格式验证
        if('email' === type){
            return /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/.test(value);
        }
    },
    
    // 统一登录处理
    doLogin : function(){
        window.location.href = './user-login.html?redirect=' + encodeURIComponent(window.location.href);//问号后边是指明从哪里登陆，对网页无变化
        //encodeURIComponent其中的某些字符将被十六进制的转义序列进行替换
    },
    goHome : function(){
        window.location.href = './index.html';
    }
    
};

module.exports = _mm;